home *** CD-ROM | disk | FTP | other *** search
- Unit CPU;
-
- Interface
-
- Const
- V640X400X256 = $100;
- V640X480X256 = $101;
- V800X600X16 = $102;
- V800X600X256 = $103;
- V1024X768X16 = $104;
- V1024X768X256 = $105;
- V1280X1024X16 = $106;
- V1280X1024X256 = $107;
-
- Type
- SVGA_Vesa = Record
- Firma : Array [1..4] Of Char;
- Version : Word;
- Creador1 : Word;
- Creador2 : Word;
- Capacidad : Array [1..4] Of Char;
- Modos1 : Word;
- Modos2 : Word;
- Reservado : Array [1..238] Of Char;
- End;
-
- Function Comprueba_Vesa: Boolean;
- Procedure Muestra_Vesa;
- Procedure Modo_Vesa (Modo : Word);
-
- Implementation
-
- Uses Crt, DOS, texto;
-
- Var
- Vesa : SVGA_Vesa;
- Regs : Registers;
- VesaOk : Boolean;
-
- Function Comprueba_Vesa: Boolean;
- Begin
- Comprueba_Vesa := False;
- Regs. AX := $4F00;
- Regs. ES := Seg (Vesa);
- Regs. DI := Ofs (Vesa);
- Intr ($10, Regs);
- If (Regs. AL = $4F) And (Regs. AH = $00) Then
- Comprueba_Vesa := True;
- End;
-
- Procedure Muestra_Vesa;
-
- Var
- I, J : Byte;
- Begin
- Regs. AX := $4F00;
- Regs. ES := Seg (Vesa);
- Regs. DI := Ofs (Vesa);
- Intr ($10, Regs);
- If (Regs. AL = $4F) And (Regs. AH = $00) Then
- Begin
- ClrScr;
- With vesa Do
- Begin
- WriteLn ('Tarjeta tipo:', Firma);
- WriteLn ('Versión:', Hex1 (Hi (Version) ), '.', hex1 (Lo (version) ) );
- Write ('Fabricante:');
- I := 0;
- Repeat
- J := Mem [Creador2: Creador1 + I];
- If J > 13 Then
- Write (Chr (J) );
- Inc (I);
- Until J = 0;
- WriteLn;
- End;
- End
- Else
- WriteLn ('Error al buscar tarjeta gráfica compatible VESA');
- End;
-
- Procedure Modo_Vesa (Modo : Word);
- Begin
- Regs. AX := $4F02;
- Regs. BX := Modo;
- Intr ($10, Regs);
- If Regs. AL <> $4F Then
- Begin
- WriteLn ('No se encontró Tarjeta Compatible VESA.');
- Halt (0);
- End;
- If Regs. AH <> $00 Then
- Begin
- WriteLn ('Tarjeta Compatible Vesa Detectada. Modo Gráfico no soportado');
- Halt (1);
- End;
- End;
-
- Begin
- End.